package baidu;

import javafx.scene.transform.Scale;

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    private static int n;
    private static long m,k;
    private static Long[] a;
    private static long ans=0L;
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        n=scanner.nextInt();//技能数
        m=scanner.nextLong();//回合数
        k=scanner.nextLong();//最多能连放的次数
        a= new Long[n];
        for(int i=0;i<n;++i){
            a[i]=scanner.nextLong();
        }
        Arrays.sort(a);
        long shang=m*1L/(k+1);
        long yu=m*1L%(k+1);
        ans=(a[n-1]*(k)+a[n-2])*shang+yu*a[n-1];
        System.out.println(ans);
    }
}
